The present invention relates generally to evaluating quality of service provided over the Internet, and more particularly, to systems and methods for scheduling of service measurements over the Internet.
With the explosive growth of the Internet, increased traffic has caused the performance experienced by users making connections over the Internet to vary widely. The longer it takes a user to download information from a web site, the more likely the user is to go to a competitor""s web site. Thus, it is important for companies to be aware of the amount of time it takes users to download information from their Internet sites so that they can quickly identify problems, upgrade their equipment, modify the content of their web site, or otherwise increase the speed of delivery of information at their web site.
Many factors influence the performance of a connection including the user""s modem and other equipment, the type of server, the load on the server, and the Internet service provider used. The first step in evaluating connection performance is to obtain reliable information regarding performance characteristics such as the time required to download web pages or other information across a connection.
One approach to measuring web site performance is to connect measurement agents to the Internet at various geographic locations. This approach is described in U.S. Pat. No. 6,006,260, issued Dec. 21, 1999, by Barrick et al. The system disclosed therein uses a browser agent to send an HTTP GET command to a server and then record the amount of time it takes to complete transmission of the data. The agents evaluate the performance of a web site by measuring the amount of time it takes to download a web page at each location. Due to their remote location, the agents are able to evaluate the performance of a web site from the end user""s perspective, and are able to measure the effects of the intervening network itself in addition to the performance of the web server. As a result, the performance seen by an agent can provide a reasonable approximation for the service experienced by customers connecting to the Internet at approximately the same location, and at approximately the same time as the agent.
The performance of a web site may be measured by multiple agents located at various locations and running the GET commands at different times. Measurements are preferably taken at specified intervals (e.g., one minute, fifteen minutes, one hour, etc.) throughout the day so that web site performance can be measured during peak web site usage as well as other times. Each agent may be required, for example, to take performance measurements over 250,000 times a day. If these performance measurements are not spread out appropriately (in accordance with their specified intervals), the data collected will not accurately reflect true download times. For example, if the agent runs a large number of HTTP GETS at one time, the performance measurements may be affected by the limited bandwidth of the agent""s connection to the Internet. Similarly, if transactions requiring a large number of bytes to be downloaded are run close to the same time, the measurement may not reflect actual download times experienced by a user of the web site.
There is, therefore, a need for a method and system for scheduling performance measurements collected over a network by an agent, to provide a realistic measurement which is not biased by the number of measurements the agent is collecting or the bandwidth available to the agent at any particular time.
A method and system for scheduling performance measurements to be collected over a network are disclosed. Each measurement target has an associated measurement interval specifying an approximate time between measurements of the target.
A method of the present invention generally comprises identifying a cost for each target and sorting the targets into a plurality of time periods. Each period has approximately the same total cost of measurement targets. Targets having similar measurement intervals are grouped together within each of the time periods and each group is assigned to a time range within the period. The method further comprises sorting the measurement targets within each time range to provide a generally even load balance across the time range.
A system for scheduling performance measurements generally comprises a costing agent operable to identify a cost for each target and a scheduler operable to sort the measurement targets into a plurality of time periods. Each period has approximately the same total cost of measurements. Targets having similar measurement intervals are grouped together within each time period and assigned to a time range within the period. The targets are sorted by the scheduler within each time range to provide a generally even load balance across the time range.
In another aspect of the invention a computer program product schedules performance measurements to be collected over a network. The computer program generally comprises computer code that identifies a cost for each measurement and sorts the measurements into a plurality of time periods. The computer program product further includes computer code that groups together within a time period measurements having similar measurement intervals and assigns each group to a time range within the period. Computer code that sorts the measurements within each time range to provide a generally even load balance across the time range is also included. The computer program product further includes a computer readable medium that stores the computer codes.